﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

using ProjectPigs.Core;

namespace ProjectPigs.Scenes
{
    abstract public class Scene
    {

        protected List<GameObject> gObjects = new List<GameObject>();
        public int GameObjectCount { get { return gObjects.Count; } }
        String name;

        public String Name { get { return name; } }

        public Scene(String name)
        {
            this.name = name;
        }

        protected abstract void start();
        public abstract void load(ContentManager content);
        public abstract void draw(SpriteBatch sb);
        public abstract void update(GameTime time);

       

        public void fixedUpdate(GameTime time)
        {
            //called by the physics engine
            //it interpolates between 2 calls regardless of the framerate
        }

        public void lateUpdate(GameTime time)
        {
            //called after update
        }

        public void guiUpdate(GameTime time)
        {
            //called when OnGui
        }
    }
}
